#ifndef INIT_BINARIA_CPU_CU
#define INIT_BINARIA_CPU_CU

#include "../fitness/fitnessBinaria.cu"

void inicializarPoblacionBinariaCPUManual(bool* poblacion, float* fitnessActual, MersenneTwister *mt, int cantCromosomasPoblacion, float* fitnessOrdenadoHostCPU, unsigned long* numerosAleatoriosInicializacion){
	//Obtengo posicion a escribir.
	int posicionCromosoma = 0;
	int posicionFitness = 0;

	for(int i = 0; i < cantGenesEnCromosoma * cantidadPoblacionesCPU * cantCromosomasPoblacion; i++){
		//Genero valor aleatorio.
		int r = (numerosAleatoriosInicializacion[posicionCromosoma+i] % 2);
		bool valor = (r == 1);
		poblacion[posicionCromosoma+i] = valor;
	}

	for(int i = 0; i < cantidadPoblacionesCPU * cantCromosomasPoblacion; i++){
		fitnessActual[posicionFitness] = calcularFitnessBinariaCPU(poblacion, posicionCromosoma);
		fitnessOrdenadoHostCPU[posicionFitness] = fitnessActual[posicionFitness];
		posicionFitness++;
		posicionCromosoma = posicionCromosoma + cantGenesEnCromosoma;
	}
}

#endif
